package com.kimu.order_service_interface.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.kimu.order_service_interface.entity.Order;

public interface OrderService {

    /*
     * 新增一个订单，必须登录，必须指定商品
     */
    int createOrder(Order order);

    /*
     * 查询订单，必须登录
     */
    Order getOrderById(Long id);

    /*
     * 修改订单，必须登录，只有status会被修改，用户支付后，或者订单过期后status会被更改
     */
    int updateOrder(Order order);

    /*
     * 删除订单，必须登录，逻辑删除
     */
    int deleteOrderById(Long id);

    /*
     * 查询自己的订单列表，必须登录
     */
    IPage<Order> getOrdersByUserId(Page<Order> page, Long userId);

    /*
     * 订单创建后，会有15分钟的时间用于支付，到期后会更新订单为支付失败，这个过程怎么实现？
     * 方案一（延迟消息队列）
     * 方案二（定时任务轮询）
     */
}
